home *** CD-ROM | disk | FTP | other *** search
/ The X-Philes (2nd Revision) / The X-Philes Number 1 (1995).iso / xphiles / hp48_2 / ncat < prev    next >
Internet Message Format  |  1995-03-31  |  23KB

  1. From: Jan Brittenson <bson@rice-chex.ai.mit.edu>
  2. Subject:  v03i001:  ncat - Utilities: NCAT, NCATLF, and NREV v1.0, Part01/01
  3. Newsgroups: comp.sources.hp48
  4. Keywords: utilities ncat ncatlf nrev
  5. Followup-To: comp.sys.hp48
  6. Approved: spell@seq.uncwil.edu
  7.  
  8. Checksum:  452246370 (verify with brik -cv)
  9. Submitted-by: Jan Brittenson <bson@rice-chex.ai.mit.edu>
  10. Posting-number: Volume 3, Issue 1
  11. Archive-name: ncat/part01
  12.  
  13.  
  14. BEGIN_DOC ncat.doc
  15. This posting and all code included in it is public domain.
  16.  
  17.    This posting presents three commands: NCAT, NCATLF, and NREV. At
  18. the end is the source code in STAR assembler in the form of a tar
  19. archive, so you can adopt the commands for use in libraries, or make
  20. other customizations. The commands included are:
  21.  
  22.  
  23.     NCAT
  24.  
  25.     Concatenate N strings
  26.  
  27.         stringN ... string2 string1 N
  28.             -->
  29.         string1+string2+...stringN
  30.  
  31.  
  32.  
  33.     NCATLF
  34.  
  35.     Concatenate N strings, but automatically add a linefeed to
  36.     each string. Useful for creating printouts and displays.
  37.  
  38.         stringN ... string2 string1 N
  39.             -->
  40.         string1+LF+string2+LF+...stringN+LF
  41.  
  42.  
  43.  
  44.     NREV
  45.  
  46.     Reverse order of N objects on the stack. Notice that N is
  47.     left in level 1.
  48.  
  49.         itemN ... item1 item2 N
  50.             -->
  51.         item2 item1 ... itemN N
  52.  
  53.  
  54.  
  55.    NCATLF is convenient for generating strings to be displayed using
  56. DISP. A linefeed will cause the remained of the string to be displayed
  57. on the next line. For instance,
  58.  
  59.     "line1" "line2" "line3" 3 NCATLF 1 DISP
  60.  
  61. will result in the equivalent of:
  62.  
  63.     "line3" 1 DISP
  64.     "line2" 2 DISP
  65.     "line1" 3 DISP
  66.  
  67.    There is no significant difference in speed (the former method is
  68. approximately 5% faster) between the two examples above. However,
  69. using NCATLF is be more convenient than using a loop to disp an
  70. arbitrary number of lines.
  71.  
  72.    Notice the reverse order of the output. This is easily corrected
  73. using NREV. Don't worry about speed; NREV will reverse 1000 objects
  74. 0.6 seconds. The following example does what one might expect:
  75.  
  76.     { "line 1" "line 2" "line 3" } OBJ-> NREV NCATLF 1 DISP
  77.  
  78.  
  79. END_DOC
  80.  
  81. The commands below are uu-encoded.
  82.  
  83. NCAT
  84. Xsum: # 57ABh
  85. Size: 153 bytes
  86.  
  87.  
  88. BEGIN_ASC ncat.asc
  89. %%HP: T(3)A(R)F(.);
  90. "D9D20A4C81CCD20680008FB97608F14660CC48534C2A20D7D11471741341468A
  91. 7C3164146818FA4C14B2CC5BDD91088F2D7608F73560808240CA308D9CE608F2
  92. D7608082418A308D9CE60CB9162BC81FD55032230C1C16CCD20A700014310217
  93. 4E78F14660DC101132100112133130179CD14613606164146164818FA48AA908
  94. FC076007134164E7CD50D119D51101321311128D9CE60B2130BA75"
  95. END_ASC
  96.  
  97. BYTES: #57ABh 168.5
  98.  
  99. BEGIN_UU ncat.uue
  100. begin 644 ncat
  101. M2%!(4#0X+5B=+:#$&,PM8 @ ^)MG@!]D!LR$-<2B GT=01=',11DJ,<31D&&
  102. M@:_$02O,M=T9@/C29X!_4P8(* 2L ]C);H O?08(*!2H ]C);L";8;*,\5T%
  103. M(S+ P6',+: ' $$3(''DAQ]D!LT!$2,!$"$Q$P-QR1UD,0861D$61ACX2JB:
  104. :@,]P!G Q%$9^W 4=D5T1$",Q$2'8R6ZP$@,Q
  105.  
  106. end
  107. END_UU
  108.  
  109.  
  110. NCATLF
  111. Xsum: # 51CCh
  112. Size: 158 bytes
  113.  
  114.  
  115. BEGIN_ASC ncatlf.asc
  116. %%HP: T(3)A(R)F(.);
  117. "D9D20A4C81CCD20680008FB97608F14660CC48534C2A20D7D11471741341468A
  118. 7C3164146818FA2C14B2CC5BDD91088F2D7608F73560808240CA308D9CE608F2
  119. D7608082418A308D9CE60CB9162BC81FD55032230C1C16CCD204800014310217
  120. 4E78F14660DC101132100112133130179CD14613606164146164818FA48AA908
  121. FC076031A014D17107134164E7CD56C119D51101321311128D9CE60B2130CC15"
  122. END_ASC
  123.  
  124. BYTES: #51CCh 168.5
  125.  
  126. BEGIN_UU ncatlf.uue
  127. begin 644 ncatlf
  128. M2%!(4#0X+5B=+:#$&,PM8 @ ^)MG@!]D!LR$-<2B GT=01=',11DJ,<31D&&
  129. M@:_"02O,M=T9@/C29X!_4P8(* 2L ]C);H O?08(*!2H ]C);L";8;*,\5T%
  130. M(S+ P6',+4 ( $$3(''DAQ]D!LT!$2,!$"$Q$P-QR1UD,0861D$61ACX2JB:
  131. ?@,]P!A,*01T7<#$41G[<91R171$0(S$1(=C);K 2 QUD
  132.  
  133. end
  134. END_UU
  135.  
  136.  
  137. NREV
  138. Xsum: # 85BDh
  139. Size: 59 bytes
  140.  
  141.  
  142. BEGIN_ASC nrev.asc
  143. %%HP: T(3)A(R)F(.);
  144. "D9D20A4C81CCD20D50008FB97608F14660CC1001371098FCDBF5119CA1301351
  145. 18D7E7819F3CF47114714214114417418458E8D34150FBD81B2130DB58"
  146. END_ASC
  147.  
  148. BYTES: #85BDh 67.5
  149.  
  150. BEGIN_UU nrev.uue
  151. begin 644 nrev
  152. M2%!(4#0X+5B=+:#$&,PMT 4 ^)MG@!]D!LP!$',!B<^]7Q')&@,Q%8%]?ACY
  153. 6PT\701<D01%$<11(A8X]% 6_C;$2 Q]D
  154.  
  155. end
  156. END_UU
  157.  
  158.  
  159. BEGIN_UU ncatzoo.uue
  160. begin 644 ncat.zoo
  161. M6D]/(#(N,#`@07)C:&EV92X:``#<I\3]*@```-;___\"``$````````!W*?$+
  162. M_0(!K04``'$```!J%Q*[?I_["```/`4```$```````````!N8V%T+G-T80``4
  163. M````"@!_7^``````````````0"DC*```=^P`X69,&#HNYM`)(P=$"Q!CWA0\Z
  164. M6,8-11!.0"B4D\;-F3D*%"20$X9,&CP@8.")`4,DFC(ERS1,``;/B9`*!.8<1
  165. MF,2-CIT)-G8\$T,C'8X>91A%>F8&"!=0EP[-Z,2%')AL=NX$\:0.G9\"@QX=6
  166. M&F.%T*1FQWJ<L0)J0K5GG&@5*0=.U@0@0$"1<T9DWKQ.RI0A\\7)%X8?158D#
  167. M4S=K3A!#7HY9@Q$$XCIM*M*9PP+$53IUY+@9"O9Q$C.6V;"I?#FSF\V6KTKU8
  168. M.`=L`ADZ-*;14\:%FSQBQ+`I`W)'@ABY@8PP$H;-G#(Y3:,64S+V&<R::^<\(
  169. MGGP$%3EUH(N,2$9\`H.J@X:Q4^;+U8\)!DY97\;RG3!Y0$B!PL1SF<3G-<=&`
  170. M`F>4L1D:;\A!1WP@!.%"$"#T@%%"""HH4GECN!!&`F&()(8<8\R1``DWE)@`I
  171. M@QGU("$,(`PDDQP)BM3&&^RY`$<-"="1!QSMG75&9V/(2&-O&X[1&1DG#D3$V
  172. M@Q'.=@8(.O((`AQ7F7'2>&S(H6$"8B0)0A7/0?F&1IB!4`<<NO$&$@DLP?!3>
  173. M`C/6N"$09,0`I$@E(5G#D3$(R=YY1\+@)1$L2F@"8GX2F0"=,-S)I6B*D@%DE
  174. M9R2:.%`0?(&0QAP$O4&'DRV"\&*,')*A9Z");LDHD%X.P:2$<^Q6WPH@U"#2J
  175. M''6(L>6>$+7Z:IK0E4K&ED:"T"6#0C"Y@H2(@1HK;QZ"*&*E-X24`(9;;LC@R
  176. M$V[4U^QP<W!*QYAGO!'M&&.,V*:73+SQ!AS6QJFH&([*"ZAG+068WE4*)=C>_
  177. M>R(.)`5QX\H&A13]O;<I'3*!I.^`<-0Q!QH3)TB'>X(.!(7$:`";ZHT)F-'<[
  178. M<YUUF(`:F,&10,05BZ'&8>[9]5FH&T\,@LC.04?MF^@-R&_!__[GL+PVXGA4M
  179. M>"6+A'(;*K.,H,LP-S:SQAQ#"9YYBY$G'D_AAB>J'#`VE,9TU;66G;6-^07"M
  180. M:5\<W1X=+[FA=EY%@)W@%T*4]`6F9WQ!Q8Y;0W;51?S6P<:G/FKJ!@A4%-$$7
  181. M%$\(82U@ACL'5V=3W`='9P,+^$:0"2R6]F-#O)O?'&^$-D9]/G+:T;C^X7JX,
  182. MD]9J'>^0JM:9-)Q#<MB9'#)X*84,OYI0^.%XFIH`KW6*U%&&&Y)1NX`$&EBQF
  183. MA4%IGFUGQPZ4+(025G4]'8GZ[ED,PL?PZQSTD0&"Y+=J;CX9^=H;QN^",B@%P
  184. M#.NW#P*AY0/>[N8@O_N!H$Z#*HJACD>'SC@(?&9Z3D,4$H;)E,^`]!M4H2(H/
  185. M$Z-4<`W)0Y(7ZM2H`Z)/20H$@?&(8[A/D>$@)L/6AL2@`#;!X(9O(MJ<Z,<JA
  186. M!KD*@H?B2_S"H+)B99!!A&I2$'\$F?ZQQWT`7!G'SB.\*5!A"4UBWQ/_UR=AB
  187. M+0]5O)/3HGC8*Q^N3U8@H)6MO,B\_"EI@TL\(`QOE:M=]7`@/VQ2LYX5K`_I"
  188. M@5B4:M,),5(Y)PTD#6=P@[_&0SWAK"$B<,A#JTP'`B`DL04^J"01[-1$"/TFX
  189. M.."JH2#?!(=WG2=510J4!ILDL0Y2T((A_.(!W:B7=UD'.Z]Q7D&V)+UKE0%ZC
  190. M7/(2M[S%%UQ^"ESB(I>Y'H4N==V0ENVRI=E>`Y(`<A)T.KQ7]_1#,'^]+X`E$
  191. M-!D!B3@_6B815OXCE`L:]*M63G`A%@QC&>:'/B2FT)T>A*4\1R*#DGGI@4IDT
  192. MH-)2)L66O2P,,<N2@6A6-09:Q@WNB\AK.A(>:V7M#>4)R4",T)%-O41Z=+&+$
  193. MVHH`T2>X3#$035M``-RGQ/T"`88+``#T!0``:A<YO).OB@D``)(%```!````"
  194. M````````;F-A=&QF+G-T80````H`?[5U`````````````$`I(R@``'?L`.%FB
  195. M3!@Z;,RXF$,GC!P0+4",>5/P8!DW%D$X`<%03AHW9^:`N).&#AH03(S,4:`@\
  196. M@9PP9-+@`0$#3PP8+=&4@5GF80(P>$ZP5""0Z,`D;G083=#QXYD8'.EX!"DC&
  197. MZM0S,T"XV&K5Z48G+N3L9&/4*(@G=>@H%<A4JM,8*U*N:$HUKI&Y;D'.L+MBS
  198. MZ\*\9YS8+=M2#ARR"4"`@"+G3$O%BIV4*4/FBY,O#D.VO$C&,%FB((;H'+-&5
  199. M(XC,==I<I#.'!0BQ=.K(<>-T+>@D9DZS86,:M6HWK$^+[0IRSMH$,G1P3*.GI
  200. M3`LW><2(85-FSD(T;^30(9H@AG(@(XR$83.G#-';N<7`%'XF]6KCW+V#`$]%'
  201. M3AWS+2>2P9_`X&ZF8=A1QA=BA93`0%,$6,9I=X21!PA20,'$:V5HUM]X;"1PD
  202. M1AFL8:?=@2`$X4(0(/2@T779;9?`?F.X$$8"8;0DAAQCS)$`"3?DF`"(&_5@/
  203. M(@P@#-23'-FUU,8;`KH`1PT)T)$''`/2=89K8QB)9!DN]N<:&3L.1,2()1)WO
  204. M!@A.0@D"'&*9(5-^;,B1I1A=@E!%>62^P5%J(-0!QW+-K43"33`HE<"12;X(<
  205. M!!DQ4-D23%S6L&4,5@JH)0ADP!`G$4"::$)FD6)I:*6*)C"C&YZN2*5K..HX?
  206. M4!"-@9"&2&Z\08>808(P9)$PDM'HEC@->F66A\)`99Q#@&GB',PMN`((-;0T!
  207. M1QUB9#G#L"`62^*QR8*PK`R+ZIKE&*[!":(08*Y@8F:T(MN<MB!P*RJ--J9Z0
  208. M`TLKEM'BBR^"^`2I[(%`W1PBT6'G&6_(2.,8-P(:)Q-OO`$'O826*D:H$4\J`
  209. M1Z_^92@60]D-6*"-`TE1G<##02'%A`6^2D=/*UWX'QQUS(&&S"D2:.E`4,1\&
  210. MDKKF^9KDD@F8,5YYKL68@!JIP9$`S#2+H09F!!X&6ZTYRPR"T.29)Z^@&;LT-
  211. M<L<$5MARQ$HR*=5]1;>$=!M*,XV=TU![-C7..I-I'W^<Z8??40#?9ZL<1#Z41
  212. M1GKK^?8>O9X]!@)N7YP]H$D7*:Y8$8!G]X40,'W!ZAE?4/'DWJ&)E='&=;`Q,
  213. MJY2NN@$"%44T`<430M`;6>GD`>;:%`W"X9K(&+Y190*<)0[:$`X_.,<;LHVQF
  214. MH)0B?20PA<^:+J8+I^GJU&FJIW3U&[N]01)(H.TTQLYUC*$\P&D(.#V]>D/\3
  215. MZZ>)GM8IC*[)(4.<4LA@+`@FD&YZM[NB%*02\)%[K8A]&-(0AVBF'6?E+DMA-
  216. M"%><R'6M$S%0116+X&MB@+\8[&\."B(#"&+GP#`H38.5FI\&+X8_&'PPA"#`S
  217. MU/SLES:FY(Y^`KP45#3E/SJX1D05C%E/HA(&TJB05Y?*5)[*\Q"&%'$-`$R`5
  218. M%Q`EK!QZ:8?\ZR&E#F(T%KU)`7^"@1@%1;9/51%AU=K?IAI30J6!BU*6`A&FM
  219. MPK3&*87FA0(2H0R7IK/^X&\*5%A"F$"8QQ@.D%$)<!0<.P4L4$F$6!_,UK*:Z
  220. ME:L`5BJ)=$07&;CH+&AE29%H'(BUPH0NGAE,#]]"%:`X.!`GT$Y,`TG#&6(E=
  221. MEOPD<#IKF`@<\D"LXLUGCBWPP2_C-TKH2.=?8%PE&7\%A_M-\2;4$J4+A!"F)
  222. ME#`23F\\U"%UA9Q'T0L.#NL/(U_TQDO*48E";&)#C!A%19H39PYCCWN`TY(")
  223. M9HD,+?'BB\0UD'TMR'#`\5=U`C:P@KW+?`D38QP'PK!X`I0U[I.4'.+WNS).Y
  224. MBI\0^MIP8N>S,KBDBD:;PPU1N-`8*I&0E#$I]8`8IG02T8@=Q2&B=-A2)KX4Q
  225. MBC.40='BQ%(>5J=T*EI;VW3V!KB%(6IMXA#5ZJ;%,+A!A!,!SD?N0Z^\O6$_F
  226. M+!F($3[R*IW@LS"'45P1GOH$IVWFJ8D+"-RGQ/T"`0D.``#-"P``:A<+OO#.\
  227. M1P,``#P"```!````````````;G)E=BYS=&$`80````H`?PQ4````````````I
  228. M`$`I(R@``'?L`.%&3AD[+N;0"2,'1`L0!NV4D3.G#`@Z;^"`<`)"89@Q:T"\O
  229. M$:.FS!@Z<Q0H2"`G#)DT>!+`P!,#QDHT95Q.3``&SPF5.Q0,3.)&AU`02-/0R
  230. M*=,F!@BE3&4\7=IF!@@76*<RY>C$A<$P;(0>?5*'CM&!2:ERQ.I":U6W4J$V0
  231. MW>@U9]B@*^7`"9L`*10Y9U8B1>JD3!DR7YQ\87@F98(R;LCH#7M4RL&)%54F&
  232. M&/.&3!G-8\"R23`GC,0O!ANO#,UF])DR*-&\D4-GI><Q+L(D"+.RS1N)NUE`$
  233. MA)$@P4`I,%P$`=&#[AS9M!V"B+%RSITP<#8+)Q.C^,`ARIF#,"'72>_?9;1#V
  234. M[&X<A!2GS<FK!2TZ09LZ;!9_J>$=1)#PS:'@1`LQI`"""B#4<!YP<L0@W!@K5
  235. MN41&;NKIUMY_R\4G%W7VH1<<"&00UQX1,(@G'U,<^@;<&-NQ-Q`1\(U7GF8J^
  236. MIB<'#`\N6`:%+(+8'Q$`.@<='=)QF(8;N.E&1G5RB$$A&3\&V=5SLQ'Y`@@R>
  237. M*$!"33`8E<!M3ZXDAAQCS)'`EC"X"`(1;[CQ68<240@$=P_V-\5U&LV)(PAS]
  238. MIHB>G"$*QQN<.^H6AG!]ZL@CHB%&2`:4-;1871UB)!`IB#8E,.888YS)I98U-
  239. MQ>"E&G6TD9T<<J"V%V=NT-&>90K-5@9J930&0AB1@<`J'4?6\=E*D)'!F6>:)
  240. M32;88%,,^05&M(+5WA!M2A0=1V)\%!)&$-EU;!&1/4$2L)$9&Q#<I\3]`@&\H
  241. M&```4`X``&H70*'\PZH0```T"@```0```````````'-T9'-Y;7,N<W1A```*E
  242. M`'_OU@````````````!`*2,H``!W[``QAPZ9.7G:@&A!\$V;,B#&.&SSQ@W!<
  243. MA&+>L)FC0*`"!0G<L$E34`R;-V/6?$P@)PR9-'@2P,`3`\9'!4?&@.@!HH89A
  244. M&C(4&)%3!B)/GS9B*'#RALZ7C!IW@I@1QDS0*77$2)U!IHQ-(F_*R)'SI:"<?
  245. M-&[.2(U1`P8-'`JHE,%#9^V,(**#SYLP9-F6^T)E;EV>,&3+&U%`PI`V9M
  246. M+T2>%)$B96V8&3-R,';\I8B5($PLSQ!39O-C*$&H(+$<0\;BQH^1/&E2A#4-C
  247. MFT@<&@6!@TR.H%#"T$&S%L?;,0J@U)%S)O#?-V+"L"E>@X89!5/X?@GC)L^7E
  248. MY]&G&\91X[`"*6/8?#\97NJ-'#?$F/XRA<H3J3)@C!FC]XB4)T)\X48=;(C7@
  249. M$PPUB!'4$W"4X482]_$D0QEBS'`#8R?-40:$6[$UA@U"$56&'KOA)8,9\@U1@
  250. M(']2M46##6$H4(0=TA5'88PS2O<%'$39\85$;@Q&EU0VF$&&4LK-@8:`A!%9B
  251. M!GR,H1$&63!4261U,906!!F/F876&3]**4>+$VK)90U$NH9#C$FXH1-/7)5QK
  252. M'1%UP/%%FV^"8(,,.%"('1IOR.%4?C`0QY,-UL%0VA2`"OI%384224,9B/T9"
  253. MJ%,V1'HH#6/T::FC8VBJ9UYDP,7HI4^)8>BH9(RQ:*-.W;4JHF+00`-V=)R5R
  254. MEF!O?"<'=#NF0<<8:."P5@QD5!G7<FY\\="`7[QAAAE239K8=4X0N%&N7[98,
  255. M`QG8:NOEKA+!D<=:2<UP'12_GM%2&P)J6RT,-^``EQ1E2'=2GDF-$0-R0[QA`
  256. M+I$VU'!AM@H91D--UVU)QE9DB(&<PV5QN^NX:AT50PXS*,"$G'1\/,<<,52LG
  257. M*YA*7DHD8C5H%L188>1!1:]3MG2N8<F&(=_+-L^\5L[R$5%&GC-X51J=<'1H*
  258. MKXQND/&$&&IT*(-\1<11AW1)PWFD9DRY0>*O64^UW\$T,S='<6&PI8`68@F\(
  259. MU1AA@(CT%VR#G:8,-H!X1!F#,A%&0?O6>.AA95RX=ZQL_$U'X`8F=5MIAW]!^
  260. M0^*`HR2XGGC-`%?DE"]N>>.'B0%B$F8(AH:#7Y2QT6Y)N007Z8+)44=@PSE(-
  261. MY,82*S`W[%_W6GNS<PU]^YJOEUZ%AF29D3B8OZ>^^LIE^):<'6F4<4=9L&*OC
  262. M,D^)UA`4$R3QI96$8=QP*_@%!<'&&>R>X?-1-%3E<?CO]Q3_=>C3,3-]?!'%K
  263. MQ.=GXXGYDN6QSWVA"5*921DXI93_P4T]3D@@'A88AM(X4$=3J%8,2!.C)A!H^
  264. M*T,+B@?9(`,0%DD!(]P.S+Q#E,O-8$^M6DJ3!(B96[4//[[1"Q5DMQNJX$`IV
  265. M1I".AK82AE`I0`AHX97V!-6B,,"@8U2X0Z^0Z(8Y*#%E@@H@"*S#%:7@2T?:^
  266. MP6)A0!`#'+@J1E]43QBS-X4[A"%L>RJ<?-KXQB\\P0YBN9WF;"(%C1@(,Z[1O
  267. MG=W@)`-;8<>-=B+"(/4$`S/D(&A@*R$A:P`710J,!D1JY`U*@X61B$&)4H"#!
  268. M@3:9`\T482R!^H(07*)"YN6A0<49@X)DA$JR5*%I<OJ"$\+PD%C^YE-.@8&J8
  269. MYO4M#.6++)V;TAFTF!?,G*<,&G)*,LW6(LT!18;1^X(,6JG%,H:A-]A\#`VX:
  270. M61PQY`!;17F,$\@YGC'$#SM,T&4Z=<E.,IIQ!K>:0CR=,,^2*1-M85A,&X5%L
  271. MK&@U2YET>&6)<("BJ\1SH,-:TC81JM!N]@E<\*3/'0BZI(JT,J&P',_0%O70Q
  272. MC494<A^M:'',``.E3"$,>/1;0>2937\R!Z"+D2D=UE"&FVWQ!G@!YA=@L!4S;
  273. MR$FH,2BJ(X4JR2U6J6.G<M0,Y@4#O435*9CD7DLO=-4OH$FK,G!I]FPPKZD),
  274. MU5A:59=0J[JJVP!UK65H*[WFF+U&RI4\2!75;1B*5!O(599(-4-;6R/0[.5G4
  275. ML"=B:@P&FQFAWF96-!`#&6+4U1L(=BW\B0&(NHJ#&4"6#(5,SDL2ML4*R:!C<
  276. M5;L:">$H`QGD`(WY4D]2R9<8S:11F_@)@PRZ\DP=396V9NC8;;,*`AE<!@;W]
  277. MBJU7<WL7O=SV!LRE`5>SIYT6&JB,$;M.=J;DE))I)X(TC!BN`A48&72.<;?S;
  278. MB4VR0]XOS."\G[M=IM;;O\!,3G'H'5Q2Z-M>^#XPO5X9+U&^D%_,[4F@B-Q*0
  279. M:SO&LYA]8;1:G$$-PJ"9F368A;']&0P2$Y<W7)C`X=/P;;"3!A*!N"`MLD%\@
  280. M.IR_%M&@92P.7U-M<!=SQD6*5[5B=6/;S1RT13Y1?$,:==PK,?;8.M-%E7;$Q
  281. M@)86Y6`_AZSC'?,XN#TJ8,IC(N08@M+',2+&Q^?Q(QE^RT@S%#',!2(#<?>;L
  282. M@Z.EP0Y-+9JGB/!F$)KA0G2>@YVX@^'+X04&.M,=2>P$!X[B(#O(1(M7UE+(C
  283. M!`E:S\&*Z*%S!6(WE&&V9"RD#8(VZ$@3"P=FJ709FMH:Z7(:TH66=*A'8FDR%
  284. MEQH'IR:TH5>M:.*6^I&/EK6J*<WJ,GPUT_&+M:>+16M+D]4PA12#L%/]Z6(74
  285. MCM&<DH\"@D`'.A1Q2;EYR!+'>(,;P$`S!72;`&.@6QGA05@$?H.X00!47RO@G
  286. MEG1(PRC_!1=^#HF&^%0`[%)#A74VSPALJ(.2EB#9+RQ!W@8""@V*IN_2\=O?$
  287. MIVM6$9I6K48CAUV8O@M#2W/*7Y$E.H]1YA=H%/"%PBTHL'-#4U)G-3!&?-LK(
  288. M>R%R<,(W_JWA"+\:7Z8+MAA\B?(+.`>6&(^E8G!W9"!-",VOZA!O2W-$`<VAC
  289. MP]`/A2BE1%T&1BYJ,>$@<#2(\0MR(.JA:F`A!7!=25\/NQPP73#7FKWK:8<!]
  290. MV$5)%#J,)V=O3QG4MN-BO('H[(#:>QCFSH:Z.VD,FC$+8`[*:/T@1_&H.U+C,
  291. MQW`=L^@+)0)*@[(!H\4$W4`O)EE#N7RJ8OTH8`XP#0Q1EDFD]\B'*`5I[^JUD
  292. MJ&+0*D`.H@02MS=8FK$07O<MRIP"UB`&Y75=@F0PF`+0\A*X#49`*Q>#P'T*-
  293. M%`EK!BU.:</?UK`612G@:H["0QN$170%N$0-`G<*'*8D+)_>Y3!Z`;]3Q(]N>
  294. M.9#!.V&[BWYB1)0Q^"CJ1-,:.*`9;4`@V[%<1X$B,:1GW!$M4#,T7M92X/9PN
  295. M.U(M.;`TZ7%,7_!PR.<IIV=MCB(M%5-$W"=`"+))P]=3TD<M)C@I,>(N;[0DC
  296. M[@(L<)`K[H$@!?.!).@K-&B#)E@#-0`B'0$"*E"$"P$"35!$O\(1.Y``0I,>D
  297. M4Q(](%`1;'`N:4`MZS<R9.0"*W&%()"%`608'S$0X.,&//4P-1,S(+`%7;`2J
  298. MVC<&OY(`1=`&-9@'97B&*S%9UN8"89``(!48K':&:9@'(*&'8<"'"5`#*G`K`
  299. M"6"(B/B'V\8"9"2)-@$2#D(&;_@K*X$&:=`5<DB'"76'T7,3`U&$*G"$$_<P!
  300. MT@("9B!OI6&)37.%*W&)(U$0"A`0W*?$_0(`````````````````````````C
  301. M````````````````````````````````````````_(/<I\3]`@']&@```QD`&
  302. M`&L74P;IKI,"``#Z`0```0```````````&UA:V5F:6QE`&US+G,*`'\/+0``@
  303. M``````````!`*2,H``!'*!@!@@J:-'-`-`FSIHR9-&S*@&@3)@\(.67BU$F#!
  304. M$<01)U4F,BSC`L03.2#2T!%IT<T;.BX&@A!!L2$(,@CIB+B8<2/&A!]#UBS#/
  305. M`H28.BM5WGQ39HZ;$RLITJ%31H[,.6G<C)&8YTV=$QU=KIQ3!PZ<-W/*D`%!;
  306. MYPV(.FE3PAPHTR#"E`GAU!'#)LV8I12SQA1(4$D8-R"$R%%)U<V<-VZ*.GEC&
  307. MITP;,55!Q,B1(P;=NF'DG"FSDDS3,8OAT$D#&<09I@G15"VC0,%J.A%[:`U#I
  308. M1X&8K'-TC^$-8C=N,\4QVE$0I@Z>+X_KR-D:?`X=,G/RM)GCPGKHVG5E\[2.9
  309. MEVWHT4G=F(931GW[W@JF4`DBI8=WJU.,,`ER9$J/%FJ`T$(<"F"E50]HP$$#7
  310. M#B!8AYUV<]06!AMLZ)``"2C\YE@*M6&HX1PIZ`!""2*6T!T=WUV(@GSTI0`"8
  311. MAOGMUY^+)`#QHHT8&C@&C5Y(*$<+#T6D0P\8WA91"BZ@*(<+6A3HU71-#8EAL
  312. M&&1@5X<9#^$!PHFAL>`A<"G0B$)SST4')8BUX62=#@HDH"0(8]AAAAXOCOEC(
  313. MD&6(:29U+B[4$)YMUE%'>V.\85J=H0$)49X@\##EG8NZZ,.CBA[I@J!MLI%0!
  314. M"VP@"NF1*M3F`A1(/.%$%A9.V*F:O04$W*?$_0(`````````````````````>
  315. C````````````````````````````````````````````_(,`3
  316. ``
  317. end
  318. END_UU
  319.  
  320. BEGIN_RDME ncat.rdm
  321. The following is the source code in a tar file. Unpack with:
  322.  
  323.     uudecode <ncat.tar.Z.uu | uncompress | tar xvf -
  324.  
  325. Or, if you're using GNU tar:
  326.  
  327.     uudecode <ncat.tar.Z.uu | tar xvfz -
  328. END_RDME
  329.  
  330. BEGIN_UU ncat.tar.Z.uue
  331. begin 644 ncat.tar.Z
  332. M'YV0;L:$H>-B#ITP<@ H7,BPH<.'$"-*G$BQ(HB+-FC0  $ 1(P9-6+(X'CQ
  333. MXD>2)4O2F'%CQL60,&ZLA $CH\D8,#YVA%&QI\^?0(,^K&,0X44 8N:\<2,T
  334. M(M$R"9M*G4JUJM6K6*?NV $BX,""!^6 : %BS%*!=,JX&5@&A!,0!N6D<7-F
  335. MC@(%">2$(9,&#P@8>'#B15-F+U00"<#@.7%7P5;'7).XT0$Y0=RY9V+ I2.7
  336. M[LC+=%VZ&+VY\YFW3ES(*<P&,F003^K0H;S5,F?,,5: /B-#]^W0*T:#->W$
  337. M-5XY<%HGN A%SAF\*9V4*4/FBY,O".OB54L&>6O'((80'K/&+8CL==JHI3.'
  338. M!8C5=.K(<8.9-O@D9LZS86,>O7HW[)VW6FF8S4%; C+H %<:>I3A@AMYB"$&
  339. M&V78M4,",2@(Q A&A,'&'&4X=E]^8NPEX!GIK6>@8QAJ. (5<M01(EYFD3%C
  340. M @+M9UD8=I3QQ6IU)<#5%#RV%<8=8>0!@A10,/%>&=KAZ"$;"9Q1!GMHO"$'
  341. M'4*"$(0+08#0@UL%9;DE7C:.X4(8"82!EQARC#%' B3<8&<"7;[5PY@P@, 5
  342. M5')HB5<;;_3H APU)$!''G#XN)M[8PQ:J(-LCN$>&7AR10288A)(%PB+-@H"
  343. M'*N9T1>-;,BQ9@)B9 I"%2""^@9<Z8%0!QP+-F@7"3C!0%D"A!K*)A!DQ  I
  344. M7GMA6L.E,4C:(XZ7PN J$7V.:4)VSE*: +$P',OJ?-J2 :E[==[)51#.@9#&
  345. M'%V]08>G9_@) J""MDF&LM%FNRJWD+HZ!*=CSL%@6RN 4 -><]0AQJK+EN4O
  346. MP+F&:"\9JUH*0JM="L'I"F-F!V_$;\8Y9[DWW)5 FJNRV>43;AB9+H5SL$O'
  347. MK&>\$?(88]#9JZM,O/$&'"8'JZT8W@H-[7LPT#AE7A7.O-J/4,[)E11-:]D6
  348. M%%(X">2Z:<EAEY0ZPD$4&G.82<>/TG(%Q=@@ SOIH8F:X2&([KF9@!KIP9& 
  349. MV&6_(88:V/V8''SRKETV"')_&"+)O^9(Y6H&60UUE$+#K6B,9=2-%]YMZ,UW
  350. MEG\'[AWA:K/-F8PF<U?CC)'%+..\<@0J5AHDFNB?BB9[!QT(^'UQNH]T$.;&
  351. M[A<5$;N67PBQUQ?HGO$%%8RR'MYJ;#V9,!OO[J:N&R!044034#PAA,D7.5''
  352. M?H^", 62<+A']91O1)H =[J#-\3/2BHEWQAM[<;N7#.SWOFR]YOGT.@--@K:
  353. MVX95+,VY[5EA<(\<9. J*<@ 8B: W "1=:\$-*Q8>)F+FMA$!I,YKDI7ZMN9
  354. M+,.^E+D'8US16)C&E!H5TB%;;9)@#"H8 XC-H4AD ,'X$,:^'(* #$E[8!F,
  355. M* =I=4D*,/ A$$% +1Q.T(%S*&($C[C#+A%!,];2(/;<\Z49V@I$8BD*>7"X
  356. M121.JUIG/(P:U\!!3'FA6-WBHA?!"((,5FB 1QR(W5#&)C$H@%<T\96^&)C'
  357. MG'7I7V:\EG.(& :]6<R-7H2C),_@'DAVZH<]"F(5]S8V'%5P"E18PB>G^,4Z
  358. M>C!?2MP7$OOU2!\.# 0%.]C$7GE$)VI*DQXC@R 1IC"&T9(KGNQ8N@36H)#I
  359. MH6+DZM4.N6*^_<"+*VDX@QNLIC0=36@-9H%#'OR%/Q  @5IC\8$YO]A)3D%(
  360. M0C [I#1_!8>?X6B11\/D+SOUE#0>9(VN_* O00"%GYTH10 *84!65<*3E6&$
  361. MK'(5RUR&HO^\"V8RHYG-OH4SG2629S[#U>T 9!<K&JLL^+08#)=4M0&-3XEY
  362. MR:/=LEA)(^J3BG $)75PZ@(O0:R?FPG#&F':QBYJBH] G:,"GW7%\[BJC)WR
  363. MX_5N>+>\D;)OH0N#X%)UI<*Q38SO"H,;@F@6 ,T%==L9Z^KNPA4CS&5=A"GA
  364. M<9*SNR*,]0E_2VMWZ)J5OOKUKX -K& '&Q&OT($-9@ +0@C+V)^4)",;Z<A'
  365. M0C*2CI3D))9-"0AH8 .1O 0G,IE!##YR@YO,X+0[::QJJ4*4L!PE*4O)2C]7
  366. M2]O:VO:V -A*5]""6,6*A2QE18M:JO<6_X'@#FD('@B88(22YF4O??E+8))(
  367. M&,.()3&+:<QC="L9VEQH-YK9S6<**!K2[ 8UJF&-:W0;F]E4!KPK8*YO3-,;
  368. M^>YF!O$U0G!&<][\&B<O=%T.02<IX/)-ISK7R<[7Z$=7^XVG/&\9*7LD>"7Y
  369. MT(<N]HE,?J;4'^<@-$ (Z5\!5W2A!$6L!>^<4(7*I*4;7BA#YN30W$*T@Q%=
  370. MS'8>MBB)6Q1C&*$51PB\T0EU.CFIJ:](YT&2DIBDM:AUDTI6PE*+NP15&K)X
  371. MA81LT\U&9J<;N$I/?)(7O>2@+T0I*GI?2)_\*E>I2TW+AP4$5?1&5:I3X2A5
  372. MJUHIK-H2P(2UP5:X8F:%Y$F37[%Y6PU$Z2X_V"R87G*@Z+06MF+)2&_!J64,
  373. M'1<(2$;E=*VK700TC9B/1^9%P_+0_')8+<TH:%P:C)@+8],,CAD>6S;(U3*H
  374. M(S0OYBH9XE*9\=)>JPN6:XYRV4XFR[+*N#+1$X$ H[("0<UNEC-$#K1G/UOJ
  375. MT(HVJ:,U\<E,B]S3@&1DJHG[:EE[TAFX!I6OG?!S-D1;EPR'AK95SLR)H]MY
  376. M-F?5S_D-<%H=75=+=[A\+Z[+C5L:Y)SF(W*7.5&_<R#G/#>V?XMN< ,GJ.DP
  377. MESJU!IFMO'-=6\:LKMH%4<+.U9V >_<[WPF/>" PGNR2M[SF/2]Z(!\"]=(B
  378. M0.Q];"[=^U[XABC@:GZH@.Y97R7=QQHVQ$^O]4-F.?47)Q&;YG\ FA58X=73
  379. M9&'F/-QC+N+>L)\W()<NX"G,&.J=,)Q52& ]XKH)/XY/8IW4;D;;X@0K>,%(
  380. M@C6@S%(H1.4*-BBGT&R4A(,+>9TQB-40\435(0^E&$HAFHRF>FMC$O,NP8%"
  381. MD?([':71FCI3+3)K6GR4Z@#)^%,T!G6HG._E&_GI>J7N\HXX.?U1H[IU81X$
  382. M30_-,Z$+7?=9JAJ9&)PTYO,):6 ZIYVL9F42/V?*)Z)2E0%C9:.3Q4LD%K^1
  383. M#V/U+7,)>-EG,JK!'*9EBLFFACD2^6;TF*"=N6MK3],MY^//;K"I36X6GE5L
  384. M $[X0T[BM$Y]T@+J=$XGY4DI%D_V9VAO P<4A'O@5TM"T"G,I2^M8C%VYTHR
  385. M$'AX44^6E%+1,GMCDE3_1$?E=U,%)5(YMAZ"QU# !U$KU6P2]FQO%VW3QE'5
  386. MUBO7%E('I6/:EA<GM68+=#0K96X,9WDPU4189'KFMT_95WG4TE-5%D?^)%1T
  387. M%'EZM$>T)T<I.(2D]U08]'=5U3E7!3H MU6DHW&'LW5B159+00=G=2.J0W=M
  388. M]59E0QVY$V#%<U=Y-3]CI3NX58A8X0:K80>^98BW]5@:01*3Y5F9Y1$N,8F7
  389. M50,Q\5DQL1(R< .9Z!$X00,RD%J,6(H*T5I&P1&PQ118,5NF^(JP&(L,H5N(
  390. M6 :*6!2_]20]XC5\9E#%E8(@\&\/Q1ZY UUXD " (1@)4%TV(@?8Q1@B$AF3
  391. M 1X7D5QET ::88UM,!+:6%X]I8WH13VM46/,)ANT41+@" +"H2YIT08NH8W<
  392. MV(Z:D1KB*")SI1S,06#1<6#6@1W.L6"#V&!38XOM)F1T]W]$YG#_%V4V-(,I
  393. MPT:=5T%19$:/UV)CX1&)ET]&56N1!(XX9#%RL)%2D'H>"6YM<#Z!DRA4!C$H
  394. MX 0M$ ,I  (J\&I-6(2ZUF9.M9(=*8\0&84X%57:V&A&<TD;^45 V8[%846-
  395. M1()']&84>67O0A:-)D(R:!ER$&LGXY2=4I%; @(O  *Y9FV_DF4-!2=RXE%%
  396. MN102@VJ)]G[JPS[F9'P=2&F()E/XM$5S>6@<Z'VFQD6PUGU)9)8]2!.$EB'\
  397. MAH:QLU5EQ24#>6Y%!G9R:%9N\&-WF$#W"'-38#:^\P90XR&/M!2[^"YO42+D
  398. M$6WU*&!V109XI090QU>R^)JP*10&009SD =M, >+&)M^Y8B118F4A1(F48F:
  399. MY1$P( ,U,!(& UHTD!,R, -] HHU< ,V0(JZN5JH*!:JJ!2L>!6N6)W>^9U]
  400. MI5NS69M_1A9*H1YE\09M0"C<0YYB0'864F-XX09LP#43$C\J^%Q\<8S)F#1W
  401. M<01CT"DU8 :BJ !&L!IM,28#VED*X 3N\@7O27:=,@-A8 :Y-@4*,Z$VDC1$
  402. M\ : DF9Q-B8Q@(DT@ ,*0 5E@ ?O(J*B10,E-#-G< 84XCLINJ*4* -C<#!#
  403. MT ;5001/4 12( 6=$@-A<%HYH  [6AU%8 5!X"0B6J1B$"))^@50$ 14@ 1#
  404. M&@8BH:,\^@5(\ 1-4 19&@/+J0!(H)X)"@(X0 8YD&M0,!#U)J(X4**1LC;.
  405. MX2,RZC<>,J0X4 ,T8 8*, 4S@QT0\@5Y6B+\(:<A,0,*( 5CP :&ZG2(VBDW
  406. MD ,W8$A3BDI/T"DR  ,X4T)'( 7B\P63:4T*"@,U( :Y]@2-X@9)L*EC(@-E
  407. M( 8L@:1.!R*O.J$C.@8V8* (>FLB*HIF@*G[,09!=*J<Y29%8 =[*J>SJJS,
  408. M"JFD8HM?L)@UVBDV8 8@1&^D>JUC8@-E8*E(B@8(\06)A*U^&@,A$@3W J*F
  409. M4:WD*A8**JOK>B\U@*W&B0-N(AD!.B8S8". 2@2W\@7\BJ\X,*N!JIF="@-Q
  410. M"@(9808P$"*9V6)?T"L-FQ%E, ,7JIDVP+#82@-C<+ )2[%CX+'?ZJ)D8*(3
  411. MNR40*@87ZZ+\,[(L*UHO*P8:$:@%M)F&&BAB\ 5PD%QKAP-#&@-(E#148&%?
  412. M\!]U\ 5O8 ;Y,28T4 8X"JA&IST*6@-D0+7YMQO56DXBVEDS *C-\09GH!=M
  413. M0*KYURG+>0,X8*+O4W;]ZK Q, 9SBZ1>Z[ V$)T-6BO!BA. RJ['"@+_*@:1
  414. M KCNBAF'^RD*&@,YP*A,4 9F0 >/&S,QD+C.8T/8JK$U<*3HHA=Y0 6<B1">
  415. M.Z1(% :&U+E) KJD"P.FJP!$\% 36@81Z[JWHJMMJP"IN9JZ*@.&5 1Q4 <>
  416. M@BO^6BQ'ZJ!NT""!(KR"BS,EXZ#^6!=\JJ4'HP5085#^*A"]*K!P\ 74F[SX
  417. M*@,VT*M'<"5?( -,$ 8&X70Y@JT?408E,[YG,P-L@+Z'%3_-*K?+&2+P^P4T
  418. M,+_I:[^)BK\S8*+[Z[_UN[[?^A%BT*LL)SQ?4 :*P[Y[8:(LASDNIQ;LFP.$
  419. M2[O;VSO(RYG!HQ8/C >PF\#Z2L%F\ 5[)@=?8 ;SZSPA[ 8/','?.@/4<:10
  420. M8 =I4 9WD&::B;E0"[''J0!,P#5^PZEA(!-$S#5!P 9GT!QGH+H*2@,5NL0&
  421. M(<4&0\6 6L17S)F":C4]DR/L,B8RX7UA["%?T 2= AAE ++-<L:0JB?2U<9A
  422. M$")P_ 53H+8Q$*5NT@3G$[MCD&M^S 8CX:]ED*T*,,C^Z+F=&< S8 ,R0 :1
  423. M(ATJ2JFG10,* ,6<RJ8EY&-I2J$XT"P=0L."*U1)(P1SH;- ;#!A  .,2@5W
  424. MP)FH[ 9SH,IF,\:;90;_VBQO:\L6*:?\XR:]/*CQIG3*"\GN:TC&_ 5/L(OL
  425. M.\!)(P5DY\B:Z[K>ZZ\R<+/+3 37[+ P8 8:;,T_4\B"FZ_B# <;\:W?? ,A
  426. M@@7UV;.#*@7)0:GA>J0RASS*4QW9X3MS!LRJBKNDIL)C!;G6$0;H"<QM*K-G
  427. M P,NJ[:H6D)#0"'E:L *IK9D<%J-6B'D2]'_** #7*#201WE^[RX' ,G7$(A
  428. M71TT0-)\*@8Y0+7\F& =#<Q4'*A,8!TQS=+ / .8/ 4WG=(5^[S1&P8'LSY 
  429. MBP9,*\/9$2II:M+#>J$W;=1TL'8CO=314]('F[4VC<?(-=5(O13/R]1\^E 2
  430. M&]5=3=4K;=6-@M40VRQ$TB/G:Q X+=*5ZS%R&@9$3<3TNP9EH"10>P-DJM#F
  431. M.J%F +F"S4=A"\Z"3<[+Z<J"[1)02Q,EM+)GD\Z;E1,E0]E?<*^1+0-NS;$.
  432. MS;N"+;21';:"#0-DT+!K^]D4&[&J'1/*K)G?_-I]>M@F>]DX *B:'0,V\-IC
  433. M$-L4&P-FH-I;NMBW30,BH=L*&P/$/0-'JMG+6;/")-@W,-Q#:JR\/=HS\+)D
  434. MD,V9S!=_!K6TVIRX^[L>(@/'+ ,RD /"S!H5B\0X>J2]3,XR$ :1'"*]#-E@
  435. M:=^ZG-%H;-GU[9QNZ]Z<O=^B54*]7%JQ6J0TD-F:.:CBR*=D( :Z'19G4[F#
  436. M*L<M,>$X*SDR8,#J>[^=-:!)\\5/([_T&^(!W%D=6^(,Q[\@#L#LVUDN+CDQ
  437. MCL!R6P.RV^%/H^(S;IR!"I?83-ZHFP=? -ZX#!)A<*2@6^2-O+HX>J)OX.3U
  438. M:1"K6Z93,#!?4.4V6@,V<*E2SL5=3@.;&^9<0\XV(%HN?:*Q3-FU#.&L4=(Y
  439. M@(F&!,MO\+9OSIDV).=_ZN 4.ZAB '0*F@,X$^25Q,S.G,#0K #-?!C8',B-
  440. MZBX3NMX'(\W[<='8^LU"%>F7;MDTG@,A0@1I8 ?D;,,B*^IV$+MF4#*B/@?;
  441. M*U9&'N'!RKJ&U.K;^[->C0."RL+UV3)P)!)D7NOK<NM'K>N<L>5S409\!.PV
  442. M(.RN[K/%'A?(WC+D#.Q@;NO0GNO2WNL9.Z39C /.3NS:?NS<;MG 'L[8CNM!
  443. MN^W)7N# WKKI'NWDGNPVX.TT("&N.^S9ON[SWC(*[A'9_-MW$01T\$](?:;J
  444. MX<._# )V @-'2L1 2,9$FFM%@ ?)M>41S_#J>C!58%8!#-@AVZ#>RO"7K "]
  445. M8Z54<!TQ_ 5&P 9CLP1B4!U+D :FNEG9;,,FG\(HK_(.G)IJF\TU4*<A:;N%
  446. M#= S5R+Z[!Q?$*VO \SVG?.D^J!E8-Z0NO*KG.:/'"D*L+^"N@9'P+/>GK>5
  447. M7@;)\05?[S<*WY4BRMN5JEU<T01:\P:RD>PEQ9!F@ZT9T2Q1)@-[3MA8JP#P
  448. MIIE-A*ZU&O@4VT1#_ZW'>:2&S[)-Q(97(J>E"_@5EU4"*HKA2_E8M88"9Z/@
  449. M.@9'&A<4HM3>[JF1(OHB7"RE/P: &A?P,P:DF@;P5"$"*@8W4$+?%$Y^[;">
  450. M>/I%\IC?6JF&M'"20V[8>ONYYAV+2:E['"*)J?QS**!DRJAK0.$N?SA\@@=D
  451. MH+=SP1?"%?5G(P9$L?NB"!)'"D!)B[[E(:*S"[PLBP=MD%Q#VZM[@3=R#0<(
  452. MD5R[+UH?44+N?S;P[^+) 3)@Y)27:/%4;F(UC $[8*BN1-P2+3( !QRIDP2I
  453. MM$J!&U Q[_3A/QDFC,: C7).C&O@48&4Y[/45@ZX78^J,+"PG;?&M)_(4@"X
  454. MZ&PT+1"EA2@5JF)G"H"O18@Z\+08'@R(6FZB;%42I%:VT!X<X PVT,L=C#FR
  455. MLXP@$B1CJ,K+@1P50 4O4A,0*H'"0B2 U_6H0DP060IL0$G0CE&!OMA%#S$9
  456. M8Q#_Q0PQ(:) 3A%S WSMY,2.) $"MD 7"!I8\ TD@"+0.1;%&XR#R4:0K JF
  457. M-NWBH.A*$FA"$+8?%8#)3H8B/#.-(NW1 ?=P4OR3("(#;2 /F@PTD 9LQ![L
  458. M@WG@#_*A*5@%R8+/:UJ(@^;9H;%".SH.&>!R"@ \R<)92 MKX52X@GS-5% (
  459. M6V@5>!,D @F2*"5@EN$$\)J3)I()HN@CU#OB!,EJ '7BA7WE.KT6[21;T @T
  460. MO(;8$ ",  4P KH')V07N!!RJ4(0D F5Q&KX76E@0!P!)U %R&$8X&L]Y0G,
  461. MCG=1#D&-"^"&($ $9$*^=D2XA@AX$N@0<H" ==@.]V'FN!BR@1T=$0\U!]S 
  462. M":"' Z%KX$.!$1#:0AZ0>R=@0&R3['$KZ@F(""(!Y"FPHWNX#;LA%?B&ZH)=
  463. MB(T)D08"%!E03V%@+I!$?*@$Q(H0D0L%3RUH)_?@H'I$&XA28H%QY8!FL0WQ
  464. M(17(#EW%1LR!,2 7CF :6 K2AB&" ,*P&NX"'3HL9: '&!8%$.AHF59$"[ME
  465. M(""6KI"(%$ 8J -X(,W(O:HS!WK >+)-N D7-0:32!BLQ[OX-&$ARFP/&]&J
  466. M;$1""514( A( ;<8%@*5$6 "0> (3($>T +4P%B( S!0A/0 -(#.A-9;O$UW
  467. M84KH #J! KKB'$@!=X$$=,:Y\!D51 DPC;X%+XA&5"(88])J/(R)<0JX1B"P
  468. M:6BC:*2(8\ U>H',* =:@"XL SJ@!XC&JT@A4H +" LN0 O P+7(/PR$<$0!
  469. MR2)A.*WHXEM8@&CTC"G -4)'M*@6]T>% (T*@"\8A%_A6A:@&= #FP8Z]L;?
  470. MJ!VI3G.,2>'P-^*%.B C D*028\(P3>JPIC$ T1C?F2/(, '^,?UN!]= 'W$
  471. M"Q]B+/"' :D?BZ,*N LN  I\*2>0!38CAQ&/-R0;:L@-R2$[I(?\D" R1(K(
  472. M$4DB2Z2)/)$H,D6JR!7)(ENDBWR1,#)&RL@922-KI(V\D3@R1^K('<DC>Z2/
  473. K_)% ,D@*R2%))(NDD3R22#))*LDER22;I)-\DE R2DK)*4DEJZ25O))- :2/
  474.  
  475. end
  476. END_UU
  477.  
  478.  
  479.                         -- Jan Brittenson
  480.                            bson@ai.mit.edu
  481.  
  482.